В выражениях допускаются следующие операции (в порядке повышения приоритета):
| , | последовательное вычисление |
| := | присваивание |
| or | логическое ИЛИ |
| and | логическое И |
| not | логическое НЕ |
| <= >= <> < > = | операции сравнения |
| & | конкатенация строк |
| + - | арифметическое сложение и вычитание |
| * / mod | арифметическое умножение, деление и остаток |
| ^ | возведение в степень |
Приоритет операций может быть изменён с помощью скобок.
Операции присваивания и последовательного вычисления используются для сокращения записи и повышения скорости вычислений. Смысл этих операций и их использование аналогичны языку C. Например, следующие два выражения выдают один и тот же результат, но второе короче и вычисляется эффективней:
sqrt(a*a+b*b) + 1/sqrt(a*a+b*b) R:=sqrt(a*a+b*b), R+1/RРезультатом операции последовательного вычисления является последнее выражение в списке.
Результатом операции присваивания является значение выражения справа от знака :=. Переменные, стоящие слева от знака :=, являются локальными и не должны совпадать с именами столбцов данных.
Небольшое отличие от языков программирования типа C и Pascal имеется в операциях сравнения. Запись
0 < x < 1корректна и имеет общепринятый математический смысл, то есть является сокращённой записью выражения
0 < x and x < 1Допускаются цепочки сравнений произвольной длины, включающие любые из 6 операций сравнения, например
0 < x <= y1 = y2 > 1